package com.ssy.lingxi.marketing.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.marketing.model.vo.coupon.request.MobileActivityGoodsPageReq;
import com.ssy.lingxi.marketing.model.vo.coupon.request.MobileGoodsRelationTagReq;
import com.ssy.lingxi.marketing.model.vo.coupon.request.MobileProductDetailTagReq;
import com.ssy.lingxi.marketing.model.vo.coupon.request.MobileSetmealGoodsReq;
import com.ssy.lingxi.marketing.model.vo.coupon.response.*;

import java.util.List;

/**
 * app活动商品服务类
 * @author yzc
 * @version 2.0.0
 * @date 2021/9/2
 */
public interface IMobileActivityGoodsService {

    /**
     * 查询活动sku商品详情活动标签
     * @param loginUser 登录用户信息
     * @param request 请求参数
     * @return 返回结果
     */
    Wrapper<MobileProductDetailTagResp> getActivityGoodsProductDetailTag(UserLoginCacheDTO loginUser, MobileProductDetailTagReq request);

    /**
     * 查询活动sku商品所关联的活动商品及信息
     * @param loginUser 登录用户信息
     * @param request 请求参数
     * @return 返回结果
     */
    Wrapper<MobileGoodsRelationTagResp> getActivityRelationGoods(UserLoginCacheDTO loginUser, MobileGoodsRelationTagReq request);

    /**
     * 查询活动sku所关联的活动商品或子商品信息(换购商品、赠品、套餐)
     * @param loginUser
     * @param request
     * @return
     */
    Wrapper<MobileGoodsRelationTagResp> getActivityRelationGoodsList(UserLoginCacheDTO loginUser, MobileGoodsRelationTagReq request);

    /**
     * 活动商品分页列表
     * @param loginUser 登录用户信息
     * @param request 请求参数
     * @return 返回结果
     */
    Wrapper<PageData<MobileActivityGoodsPageResp>> pageActivityGoods(UserLoginCacheDTO loginUser, MobileActivityGoodsPageReq request);

    /**
     * 套餐主图列表
     * @param loginUser
     * @param request
     * @return
     */
    Wrapper<List<MobileSetmealGoodsGroupResp>> getSetmealImgList(UserLoginCacheDTO loginUser, MobileGoodsRelationTagReq request);

    /**
     * 套餐列表
     * @param loginUser
     * @param request
     * @return
     */
    Wrapper<List<MobileSetmealGoodsGroupResp>> getSetmealList(UserLoginCacheDTO loginUser, MobileGoodsRelationTagReq request);

    /**
     * 套餐列表
     * @param loginUser
     * @param request
     * @return
     */
    Wrapper<List<MobileSetmealSubGoodsResp>> getSetmealSubGoodsList(UserLoginCacheDTO loginUser, MobileSetmealGoodsReq request);
}
